#include "GaussianAllocDistribution.hpp"
#include "generateurs.hpp"
#include <boost/random/normal_distribution.hpp> 



void GaussianAllocDistribution::genererBloc(unsigned int id)
{
	//int temp=(*generateur)->operator ()();
        //bloc.taille=(int)(pow(2,temp));
        bloc.duree_vie=id*10 +1;
        
        bloc.id=id;
        this->id++;
}



void GaussianAllocDistribution::initGenerateur()
{
  //generateur initialisé avec l'heure
  generateurs::base_generator_type generator(static_cast<unsigned int>(std::time(0)));


  //creation du type generateur de loi uniforme discrete utilisant
  //le generateur initialisé à 42
  typedef boost::variate_generator<generateurs::base_generator_type&, generateurs::distribution_uniforme_discrete> gen_type;



  //die_gen est une loi unifrome sur [|0,taille-1|] qui utilise le generateur
  //aléatoire generator
  //gen_type die_gen(generator, generateurs::distribution_uniforme_discrete(0, 17));
 
  boost::uniform_int<> * six =new boost::uniform_int<>(1,6);
  
  
  std::cout << "1 : "<<six->operator()(generator) <<std::endl;
  std::cout << "2 : "<<six->operator()(generator) <<std::endl;
  std::cout << "3 : "<<six->operator()(generator) <<std::endl;
  std::cout << "4 : "<<six->operator()(generator) <<std::endl;
  std::cout << "5 : "<<six->operator()(generator) <<std::endl;
  std::cout << "6 : "<<six->operator()(generator) <<std::endl;   
  
  delete six;
}
    

void GaussianAllocDistribution::finitGenerateur()
{
        
}
